package com.woniuxy.project115.kaer.tenant.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.woniuxy.project115.kaer.tenant.dto.DailySaleDataDto;
import com.woniuxy.project115.kaer.tenant.dto.MonthlySaleDataDto;
import com.woniuxy.project115.kaer.tenant.entity.ServiceOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.project115.kaer.tenant.param.GetServiceOrderParam;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author HuH
 * @since 2025年02月18日
 */
public interface ServiceOrderService extends IService<ServiceOrder> {

    String pay(String serviceOrderNum, Integer userId) throws Exception;

    void handleOrder(Map<String, String> params) throws Exception;

    void completeServiceOrder(String serviceOrderNum) throws Exception;

    void userConfirm(String serviceOrderNum, Integer userId) throws Exception;

    Page<ServiceOrder> getServiceOrder(GetServiceOrderParam param, Integer storeId) throws Exception;

    DailySaleDataDto getDailySalesData(LocalDate date, Integer storeId);

    MonthlySaleDataDto getMonthlySalesData(LocalDate date, Integer storeId);

    void generateDailySalesData() throws Exception;

    List<DailySaleDataDto> getSalesDataList(Integer number, Integer storeId) throws Exception;
}
